import pandas as pd


def merge_excels(excel1_file, excel2_file, output_file):
    # 读取 excel1（假设单 sheet）
    d_type= {
        '讲课后习题原卷id': str
    }
    df1 = pd.read_excel(excel1_file, dtype=d_type)

    # 过滤 excel1 数据：只保留 [是否在E讲堂目录中使用] == '是' 和 [是否老卷/含老题] == 1 的行
    df1_filtered = df1[
        (df1['是否在E讲堂目录中使用'] == '是') &
        (df1['是否老卷/含老题'] == 1)
        ]

    # 读取 excel2 的所有 sheet
    excel2_data = pd.read_excel(excel2_file, sheet_name=None)

    # 将 excel2 的所有 sheet 数据合并成一个 DataFrame
    df2_list = []
    for sheet_name, df_sheet in excel2_data.items():
        # 可选：添加一个列表示来源 sheet，以区分不同 sheet 的数据
        # df_sheet['[来源Sheet]'] = sheet_name
        df2_list.append(df_sheet)

    df2_combined = pd.concat(df2_list, ignore_index=True)

    # 通过 [包ID] 和 [课程包ID] 进行左连接合并
    merged_df = pd.merge(
        df1_filtered,
        df2_combined,
        how='left',
        left_on='包id',
        right_on='课程包ID'
    )

    # 保存合并后的数据到新的 Excel 文件
    merged_df.to_excel(output_file, index=False, sheet_name='Sheet1')


# 示例用法
excel1_file = "D:\\project_file\\老卷下线\\20250923周末智学和E讲堂目录使用到的课程包标记.xlsx"  # 替换为实际 excel1 文件路径
excel2_file = "D:\\project_file\\老卷下线\\20250923业务中台给的E讲堂目录绑定包信息.xlsx"  # 替换为实际 excel2 文件路径
output_file = "使用到的E讲堂数据包的目录信息.xlsx"  # 输出文件路径
merge_excels(excel1_file, excel2_file, output_file)